package cn.edu.cug.cs.gtl.apis.ui;

import cn.edu.cug.cs.gtl.apis.ui.datake.DatakeFrame;
import cn.edu.cug.cs.gtl.apis.ui.modeller.ModellerFrame;
import cn.edu.cug.cs.gtl.apis.ui.spacex.SpaceXFrame;

import javax.swing.*;
import java.awt.*;

public abstract class AbstractFrame extends JFrame {
    protected AbstractApplication theApp=null;


    public AbstractFrame() throws HeadlessException {
    }

    public AbstractFrame(GraphicsConfiguration gc) {
        super(gc);
    }

    public AbstractFrame(String title) throws HeadlessException {
        super(title);
    }

    public AbstractFrame(String title, GraphicsConfiguration gc) {
        super(title, gc);
    }



    public abstract JMenu getFileMenu();
    public abstract JMenu getEditMenu();
    public abstract JMenu getDataMenu();
    public abstract JMenu getModellingMenu();
    public abstract JMenu getAnalysisMenu();
    public abstract JMenu getViewMenu();
    public abstract JMenu getToolMenu();
    public abstract JMenu getHelpMenu();

    public abstract JToolBar getFileToolBar();
    public abstract JToolBar getViewToolBar();
    public abstract JToolBar getEditToolBar();
    public abstract JToolBar getModellingToolBar();
    public abstract JToolBar getAnalysisToolBar();
    public abstract JToolBar getToolToolBar();
    public abstract JToolBar getHelpToolBar();


    public ModellerFrame asModellerFrame() {
        return (ModellerFrame)this;
    }

    public DatakeFrame asDatakeFrame() {
        return (DatakeFrame)this;
    }

    public SpaceXFrame asSpaceXFrame() {
        return (SpaceXFrame)this;
    }
}
